/*
 * Copyright (C) 2000-2008 Jens Nixdorf and various contributors
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to
 * deal in the Software without restriction, including without limitation the
 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 * sell copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies of the Software, its documentation and marketing & publicity
 * materials, and acknowledgment shall be given in the documentation, materials
 * and software packages that this Software was used.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
 * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
 * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */
package org.mopore.jat.core;

import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingConstants;

import org.mopore.jat.gui.Theme;
import org.mopore.jat.util.ImageService;

public class ThemeChangerDialog  extends JFrame{

	private final ThemeChanger themeChanger;

	public ThemeChangerDialog( ThemeChanger themeChanger ){
		
		this.themeChanger = themeChanger;
		Theme currentTheme = themeChanger.getCurrentTheme();
		BufferedImage image = ImageService.load( currentTheme.getPath() );
		setIconImage(image);
		setSize( 190, 260 );
		setTitle( "select a theme " );
		
		Toolkit t = this.getToolkit();
		this.setLocation(
				(int) ((t.getScreenSize().getWidth() - this.getWidth()) / 2),
				(int) ((t.getScreenSize().getHeight() - this.getHeight()) / 2));
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);

		JPanel panel = createThemeChangerPanelContent();
		setContentPane(panel);
		setResizable(false);
	}
	
	private JPanel createThemeChangerPanelContent() {

		JPanel panel = new JPanel();
		panel.setLayout( null );
		
		
		Theme[] themes = Theme.values();
		
		int offset = 0;
		
		Theme currentTheme = themeChanger.getCurrentTheme();
		for (final Theme theme : themes) {
			BufferedImage image = ImageService.load( theme.getPath() );
			Icon icon = new ImageIcon( image );
			
			String text = "  " + theme.getText();
			boolean isCurrentTheme = currentTheme == theme;
			JButton button = new JButton( icon );
			if ( isCurrentTheme ) {
				text = text + " (current)";
			}
			button.setText(text);
			
			button.addActionListener( 
					new ActionListener() {

						@Override
						public void actionPerformed(ActionEvent e) {
							themeChanger.changeTheme( theme );
							dispose();
						}
					} 
			);
			
			button.setHorizontalAlignment( SwingConstants.LEFT );
			button.setBounds( 10, 10 + offset, 160, 30 );
			panel.add( button );
			offset += 35;
		}
		
		return panel;
	}

	
	



}
